Fix C# compat discriminator constructor parameters#11051
Conversation
…tors Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
commit: |
|
No changes needing a change description found. |
ReviewSummaryThe fix is well-scoped — 🔴 Blocking issue: derived models no longer compileThe fix removes the discriminator parameter from the base public constructor but does not update the public partial class BaseModel {
public BaseModel(string baseProp) { ... } // 1 param
internal BaseModel(KindEnum kind, string baseProp, IDictionary<...> raw) {...} // 3 params
}
public partial class DerivedModel : BaseModel {
public DerivedModel(string baseProp, int derivedProp)
: base(KindEnum.One, baseProp) // ❌ 2 args — matches NEITHER base ctor
}
This is exactly the issue''s real-world case: Recommendations
The intent and scoping are right, but as written it trades a public-API issue for a compilation break whenever the concrete discriminator base has derived types — the common case. --generated by Copilot |
Fixes #10996
Summary
Validation
BackCompat_AbstractTypeConstructorAccessibility|FullyQualifiedNameBackCompat_NonAbstractTypeIsRespected|FullyQualifiedName~BackCompat_ConcreteDiscriminatorBaseDoesNotExposeDiscriminatorConstructorParameter" --no-restore